Opaque PyObject ABI support#5807
Conversation
4f82f37 to
bcf9a32
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
davidhewitt
left a comment
There was a problem hiding this comment.
Sorry for the slow review cycle, was busy this week at the Rust All Hands.
I think this is looking great and almost ready to merge. Comments are primarily cleanups, with the most involved suggestion being to gate append_to_inittab.
|
I was looking at trying to get the maturin integration tests passing on 3.15t today and noticed that |
…'t support any stable ABI
|
I'm trying to stabilize the Maturin tests but that requires pushing here, sorry for the noise. The latest discovery was that zig cross-compilation was broken which indicates I probably need to add more unit tests for generating an InterpreterConfig for a free-threaded target. |
|
It looks like Maturin's CI is now stable with all test crates updated to use this PR and CI running on both 3.15 interpreters. |
Fixes #5786.
abi3tandabi3t-py315features to enable abi3t builds. These features work analogously to theabi3features.target_abifield to theInterpreterConfigstruct. This allows keeping track of a separate host and target Python version and fixing some longstanding issues with separation of concerns there.PythonAbiandPythonAbiBuilderstruct which wraps an implementation, version, and a newPythonAbiKindenum. ThePythonAbiKindenum can itself be one of two enums:StableAbiorVersionSpecific. The former can beAbi3orAbi3tand the latter can beFreeThreadedorGilEnabled. It's a lot of new types but it also allows us to track details about the target ABI in a much more fine-grained manner.